home *** CD-ROM | disk | FTP | other *** search
Makefile | 1995-03-21 | 5.3 KB | 200 lines |
- # Makefile for GNU make
-
- COMPILER = GNUC
-
- # Set the variable COMPILER to whatever compiler you are using.
- # Currently supported compilers are:
- # GNUC -> GNU C
- # SAS5 -> SAS/C V5.10b
- # Available compilers are listed in COMPILERS
-
- COMPILERS = GNUC SAS5
-
- # The variable EDIT_BACKUP specifies the name of backup files
- # from the editor. Use '%' for the filename.
- # Example: %.bak
-
- EDIT_BACKUP = %!
-
- # Targets:
- # all -> as usual
- # clean -> delete objects (#?.o) and editor backups
- # veryclean -> delete everything that can me remade
- # install -> install the stuff (standard setup assumed)
- # depend -> remake dependency files only
- # dist -> make distribution package
-
- # Note: Currently GNU C and 'sed' are required to remake dependencies.
-
- DISTFILE = MyLib1_0.lha
-
- ##############################################################################
-
- LIBFILE_GNUC = libMyLib.a
- STARTFILE_GNUC = MyStartup.o
- CPPFLAGS_GNUC = -nostdinc -I. -I- -Iinclude -I/gnu/os-include -I/gnu/include
- CC_GNUC = gcc
-
- ifeq ($(COMPILER),GNUC)
-
- CC = $(CC_GNUC)
- CWARN = -Wall -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Werror
- CFLAGS = $(CWARN_GNUC) -O2 -fomit-frame-pointer
- CPPFLAGS = $(CPPFLAGS_GNUC)
-
- COMPILE_C = $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
- COMPILE_Cb = $(CC) -fbaserel -DSMALL_DATA $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
- COMPILE_Cs = $(CC) -msmall-code -DSMALL_CODE $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
- COMPILE_Cbs = $(CC) -fbaserel -DSMALL_DATA -msmall-code -DSMALL_CODE $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
-
- %.a:
- ar rv $@ $?
-
- endif
-
- ##############################################################################
-
- LIBFILE_SAS5 = MyLib.lib
- STARTFILE_SAS5 = MyStartup.o
-
- ifeq ($(COMPILER),SAS5)
-
- CFLAGS = -v -ms -cfst -j104i -j85i -j\*e
- CPPFLAGS = -iinclude -ilc:/include
-
- COMPILE_C = lc -b0 -r0 $(CPPFLAGS) $(CFLAGS) -o$@ $<
- COMPILE_Cb = lc -b1 -dSMALL_DATA $(CPPFLAGS) $(CFLAGS) -o$@ $<
- COMPILE_Cs = lc -b0 -r1 -dSMALL_CODE $(CPPFLAGS) $(CFLAGS) -o$@ $<
- COMPILE_Cbs = lc -b1 -dSMALL_DATA -r1 -dSMALL_CODE $(CPPFLAGS) $(CFLAGS) -o$@ $<
-
- AS = asm
- ASFLAGS = -iINCLUDE:
- ASTEMP = t:__Config__.a
-
- define COMPILE_ASS
- echo >$(ASTEMP)
- $(AS) $(ASFLAGS) -o$@ $<
- $(RM) $(ASTEMP)
- endef
-
- define COMPILE_ASSb
- echo >$(ASTEMP) "SMALL_DATA EQU 1"
- $(AS) $(ASFLAGS) -o$@ $<
- $(RM) $(ASTEMP)
- endef
-
- define COMPILE_ASSs
- echo >$(ASTEMP) "SMALL_CODE EQU 1"
- $(AS) $(ASFLAGS) -o$@ $<
- $(RM) $(ASTEMP)
- endef
-
- define COMPILE_ASSbs
- echo >$(ASTEMP) "SMALL_DATA EQU 1"
- echo >>$(ASTEMP) "SMALL_CODE EQU 1"
- $(AS) $(ASFLAGS) -o$@ $<
- $(RM) $(ASTEMP)
- endef
-
- %.lib:
- oml $@ r $?
-
- endif
-
- ##############################################################################
-
- RM = Delete
- MKDIR = MakeDir
-
- HEADERS = Amiga.h ctype.h errno.h stdarg.h stddef.h stdio.h stdlib.h string.h
-
- SRC_DIRS = string ctype stdio stdlib MUI startup math
-
- ARCFILE = MyLib.lha
-
- ##############################################################################
-
- %.d: %.c
- $(CC_GNUC) $(CPPFLAGS_GNUC) -M $< | sed -e 's!$(*F).o!$$(COMPILER)/$(*F).o $$(COMPILER)b/$(*F).o $$(COMPILER)s/$(*F).o $$(COMPILER)bs/$(*F).o $@!g' -e 's!/gnu/[^ ]*\.h!!g' >$@
-
- %.lha:
- lha -Aarz u $@ $?
-
- ##############################################################################
-
- LIBFILE = $(LIBFILE_$(COMPILER))
- STARTFILE = $(STARTFILE_$(COMPILER))
- OBJDIRS = $(COMPILER) $(patsubst %,$(COMPILER)%,b s bs)
-
- ##############################################################################
-
- .PHONY: all
-
- all: $(OBJDIRS) $(patsubst %,%/$(LIBFILE),$(OBJDIRS)) $(patsubst %,%/$(STARTFILE),$(OBJDIRS))
-
- ##############################################################################
-
- include $(addsuffix /Makefile.sub,$(SRC_DIRS))
-
- ##############################################################################
-
- $(COMPILER):
- $(MKDIR) $@
-
- $(COMPILER)b:
- $(MKDIR) $@
-
- $(COMPILER)s:
- $(MKDIR) $@
-
- $(COMPILER)bs:
- $(MKDIR) $@
-
- ##############################################################################
-
- .PHONY: depend
-
- depend:
-
- ##############################################################################
-
- .PHONY: clean veryclean
-
- clean: $(addsuffix /clean,$(SRC_DIRS))
- -$(RM) $(patsubst %,$(EDIT_BACKUP),Makefile) $(patsubst %,include/$(EDIT_BACKUP),$(HEADERS))
-
- veryclean: clean $(addsuffix /veryclean,$(SRC_DIRS))
-
- ##############################################################################
-
- .PHONY: dist
-
- dist: $(DISTFILE)
-
- $(DISTFILE): $(ARCFILE)
- lha -AZar u $@ $<
-
- $(ARCFILE):: Makefile Internal.h
- $(ARCFILE):: $(addprefix include/,$(HEADERS))
- $(ARCFILE):: $(addsuffix /Makefile.sub,$(SRC_DIRS))
- $(ARCFILE):: $(foreach I,$(COMPILERS),$(I)/$(LIBFILE_$(I)) $(I)/$(STARTFILE_$(I)))
- $(ARCFILE):: $(foreach I,$(COMPILERS),$(I)b/$(LIBFILE_$(I)) $(I)b/$(STARTFILE_$(I)))
- $(ARCFILE):: $(foreach I,$(COMPILERS),$(I)s/$(LIBFILE_$(I)) $(I)s/$(STARTFILE_$(I)))
- $(ARCFILE):: $(foreach I,$(COMPILERS),$(I)bs/$(LIBFILE_$(I)) $(I)bs/$(STARTFILE_$(I)))
-
- ##############################################################################
-
- .PHONY: install
-
- install: all
- ifeq ($(COMPILER),SAS5)
- Copy $(LIBFILE) $(STARTFILE) LIB:
- -MakeDir INCLUDE:MyLib
- Copy $(addprefix include/,$(HEADERS)) INCLUDE:MyLib
- endif
- ifeq ($(COMPILER),GNUC)
- -mkdir /GNU/lib/MyLib/libb /GNU/MyLib
- cp $(LIBFILE) $(STARTFILE) /GNU/lib/MyLib/libb/
- cp $(addprefix include/,$(HEADERS)) /GNU/MyLib
- endif
-